package entity

// 设备
type StdPkgDeviceMongo struct {
	Id   string `json:"id"      bson:"_id"                    gorm:"column:id;size:20;comment:设备编号;"`
	Sid  string `json:"sid"   bson:"sid"                          gorm:"column:sid;size:50;comment:联网网关;"`
	Did  string `json:"did"      bson:"did"                     gorm:"column:sid;size:50;comment:联网网关;"`
	Name string `json:"name"     bson:"name"                       gorm:"column:name;size:50;comment:名称;"`
	//设备能力
	//配置  启动 停止 重启 复位
	Ability string `json:"ability"     bson:"ability"                      gorm:"column:ability;size:10;comment:设备能力;"`

	Props []PropDefine `json:"props"        bson:"props"                   gorm:"column:props;size:10;comment:通道;"`
	CrtDt string       `json:"crtDt"    bson:"crtDt"     gorm:"column:crtDt;size:20;comment:状态;"`

	PropCustoms []PropCustom `json:"propCustoms"        bson:"propCustoms"                   gorm:"column:prop_customs;size:10;comment:自定义属性;"`
	PropValues  []PropValue  `json:"propValues"        bson:"propValues"                   gorm:"column:propValues;size:10;comment:属性值;"`
}
type StdPkgPropValueHis struct {
	Id     int64  `json:"id,string"      bson:"_id"                    gorm:"column:id; comment:编号;"`
	FullId string `json:"fullId"      bson:"fullId"                    gorm:"column:id;size:50;comment:设备完整编号;"`

	Fv float32 `json:"fv"      bson:"fv"                      gorm:"column:prop_id;size:10;comment:数值;"`
	Sv string  `json:"sv"           bson:"sv"               gorm:"column:prop_id;size:10;comment:显示值;"`
	//正常、30.0  显示值  启动、故障、停止
	State string `json:"state"  bson:"state"       gorm:"column:state;size:10;comment:状态;"`
	//正常、故障、一级警情、二级警情
	CrtDt string `json:"crtDt"    bson:"crtDt"     gorm:"column:crtDt;size:20;comment:日期;"`
}

type PropDefine struct {
	Id   string `json:"id"   bson:"_id"                        gorm:"column:id;size:20;comment:通道编号;"`
	Name string `json:"name"  bson:"name"                         gorm:"column:name;size:50;comment:名称;"`

	// 10 固定属性  20 检测状态    30 检测值   40 有状态的检测值属性   50 可配置属性
	Type uint8 `json:"type"    bson:"type"                       gorm:"column:prop_type;comment:属性类型;"`

	//正常、30.0  显示值  启动、故障、停止

	Vl      string `json:"vl"    bson:"vl"     gorm:"column:vl;size:20;comment:低报警值;"`
	Vll     string `json:"vll"   bson:"vll"      gorm:"column:vll;size:20;comment:低低报警值;"`
	Vh      string `json:"vh"    bson:"vh"     gorm:"column:vh;size:20;comment:高报警值;"`
	Vhh     string `json:"vhh"   bson:"vhh"      gorm:"column:vhh;size:20;comment:高报警值;"`
	Scope   string `json:"scope"   bson:"scope"      gorm:"column:scope;size:40;comment:监测范围;"`
	Unit    string `json:"unit"  bson:"unit"       gorm:"column:unit;size:10;comment:单位;"`
	Monitor bool   `json:"monitor"    bson:"monitor"     gorm:"column:monitor;comment:是否监测属性;"`
}

type PropValue struct {
	Id string  `json:"id"   bson:"_id"                        gorm:"column:id;size:20;comment:通道编号;"`
	Fv float32 `json:"fv"      bson:"fv"                      gorm:"column:prop_id;size:10;comment:数值;"`
	Sv string  `json:"sv"           bson:"sv"               gorm:"column:prop_id;size:10;comment:显示值;"`
	//正常、30.0  显示值  启动、故障、停止
	State string `json:"state"  bson:"state"       gorm:"column:state;size:10;comment:状态;"`
	//正常、故障、一级警情、二级警情
	CrtDt string `json:"crtDt"    bson:"crtDt"     gorm:"column:crtDt;size:20;comment:日期;"`
}

type PropCustom struct {
	Id      string             `json:"id"   bson:"_id"                        gorm:"column:id;size:20;comment:通道编号;"`
	Name    string             `json:"name"  bson:"name"                         gorm:"column:name;size:50;comment:名称;"`
	Defines []PropCustomDefine `json:"defines"  bson:"defines" gorm:"column:defines;size:50;comment:自定义报警条件;"`
	Scope   string             `json:"scope"   bson:"scope"      gorm:"column:scope;size:40;comment:监测范围;"`
}

type PropCustomDefine struct {
	Opt string `json:"opt"   bson:"opt"                        gorm:"column:opt;size:20;comment:操作方式;"`
	// > < =  >=  <=
	Fv float32 `json:"fv"      bson:"fv"                      gorm:"column:prop_id;size:10;comment:数值;"`

	Sv string `json:"sv"           bson:"sv"               gorm:"column:prop_id;size:10;comment:显示值;"`
	//正常、30.0  显示值  启动、故障、停止
	State string `json:"state"  bson:"state"       gorm:"column:state;size:10;comment:状态;"`
	//正常、故障、一级警情、二级警情

}
